﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using RCA1._0;
using System.Data;
using System.Data.OleDb;

namespace Royal_1._0_DAL_WS
{
    public class VanPhongDaiDienDAO : DataProvider
    {
        public DataTable LayBang()
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "select * from VANPHONGDAIDIEN";
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            DataTable dt = new DataTable();
            da.Fill(dt);
            cn.Close();
            return dt;
        }

        #region "Lấy đối tượng"
        private VanPhongDaiDienDTO LayDoiTuong(String sql)
        {
            OleDbConnection cn = this.Connect();

            OleDbCommand cmd = new OleDbCommand(sql, cn);
            OleDbDataReader dr = cmd.ExecuteReader();

            VanPhongDaiDienDTO tempDTO = null;
            if (dr.Read())
            {
                tempDTO = new VanPhongDaiDienDTO();
                tempDTO.MaCongTy = Convert.ToInt32(dr["MaCongTy"]);
                tempDTO.IDVanPhongDaiDien = Convert.ToInt32(dr["IDVanPhongDaiDien"]);               
                tempDTO.DiaChiVanPhongDaiDien = dr["DiaChiVanPhongDaiDien"].ToString();
                tempDTO.DienThoaiVPDD = dr["DienThoaiVPDD"].ToString();
                tempDTO.TinhTrangVanPhongDaiDien = Convert.ToInt32(dr["TinhTrangVanPhongDaiDien"]); 

            }
            cn.Close();
            return tempDTO;
        }
        #endregion


        #region "Lấy danh sách"
        private List<VanPhongDaiDienDTO> LayDSach(String sql)
        {
            OleDbConnection cn = this.Connect();
            OleDbCommand cmd = new OleDbCommand(sql, cn);
            OleDbDataReader dr = cmd.ExecuteReader();
            VanPhongDaiDienDTO tempDTO;
            List<VanPhongDaiDienDTO> dsCHINHANH = new List<VanPhongDaiDienDTO>();
            while (dr.Read())
            {
                tempDTO = new VanPhongDaiDienDTO();
                tempDTO.MaCongTy = Convert.ToInt32(dr["MaCongTy"]);
                tempDTO.IDVanPhongDaiDien = Convert.ToInt32(dr["IDVanPhongDaiDien"]);                
                tempDTO.DiaChiVanPhongDaiDien = dr["DiaChiVanPhongDaiDien"].ToString();
                tempDTO.DienThoaiVPDD = dr["DienThoaiVPDD"].ToString();
                tempDTO.TinhTrangVanPhongDaiDien = Convert.ToInt32(dr["TinhTrangVanPhongDaiDien"]); 
                dsCHINHANH.Add(tempDTO);
            }
            return dsCHINHANH;
        }

        public List<VanPhongDaiDienDTO> LayDanhSach()
        {
            String sql = "Select * From VANPHONGDAIDIEN Where TinhTrangVanPhongDaiDien = 1";
            return LayDSach(sql);
        }

        public List<VanPhongDaiDienDTO> LayDanhSachTheoMaCongTy(int MaCongTy)
        {
            String sql = "Select * From VANPHONGDAIDIEN Where TinhTrangVanPhongDaiDien = 1 and MaCongTy = " + MaCongTy;
            return LayDSach(sql);
        }
        #endregion


        #region "Tìm kiếm"
        public VanPhongDaiDienDTO TimTheoMa(int MaVanPhongDaiDien)
        {

            string strSQL = "select * from VANPHONGDAIDIEN Where IDVanPhongDaiDien=" + MaVanPhongDaiDien.ToString();
            return LayDoiTuong(strSQL);
        }
        #endregion


        #region "Thêm"
        public void Them(VanPhongDaiDienDTO tempDTO)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "insert into VANPHONGDAIDIEN(DiaChiVanPhongDaiDien, MaCongTy, DienThoaiVPDD, TinhTrangVanPhongDaiDien) values (@DiaChiVanPhongDaiDien, @MaCongTy, @DienThoaiVPDD, @TinhTrangVanPhongDaiDien)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            
            cmd.Parameters.Add("@DiaChiVanPhongDaiDien", OleDbType.LongVarWChar).Value = tempDTO.DiaChiVanPhongDaiDien;
            cmd.Parameters.Add("@MaCongTy", OleDbType.Integer).Value = tempDTO.MaCongTy;
            cmd.Parameters.Add("@DienThoaiVPDD", OleDbType.LongVarWChar).Value = tempDTO.DienThoaiVPDD;
            cmd.Parameters.Add("@TinhTrangVanPhongDaiDien", OleDbType.Integer).Value = tempDTO.TinhTrangVanPhongDaiDien =1;

            cmd.ExecuteNonQuery();
            cn.Close();
        }
        #endregion


        #region "Xóa"
        //public void Xoa(int IDVanPhongDaiDien)
        //{
        //    OleDbConnection cn = this.Connect();
        //    string strSQL = "delete from VANPHONGDAIDIEN Where IDVanPhongDaiDien = " + IDVanPhongDaiDien.ToString();
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    cmd.ExecuteNonQuery();
        //    cn.Close();
        //}

        public void Xoa(int MaVanPhongDaiDien)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "update VANPHONGDAIDIEN set TinhTrangVanPhongDaiDien = 2 where IDVanPhongDaiDien = " + MaVanPhongDaiDien.ToString();
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);

            cmd.ExecuteNonQuery();
            cn.Close();
        }

        #endregion


        #region "Sửa"
        public void Sua(VanPhongDaiDienDTO tempDTO)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "update VANPHONGDAIDIEN set DiaChiVanPhongDaiDien = @DiaChiVanPhongDaiDien, DienThoaiVPDD = @DienThoaiVPDD, MaCongTy = @MaCongTy, TinhTrangVanPhongDaiDien = @TinhTrangVanPhongDaiDien where IDVanPhongDaiDien = @IDVanPhongDaiDien";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@DiaChiVanPhongDaiDien", OleDbType.LongVarWChar).Value = tempDTO.DiaChiVanPhongDaiDien;
            cmd.Parameters.Add("@DienThoaiVPDD", OleDbType.LongVarWChar).Value = tempDTO.DienThoaiVPDD;
            cmd.Parameters.Add("@MaCongTy", OleDbType.Integer).Value = tempDTO.MaCongTy;
            cmd.Parameters.Add("@TinhTrangVanPhongDaiDien", OleDbType.Integer).Value = tempDTO.TinhTrangVanPhongDaiDien;
            cmd.Parameters.Add("@IDVanPhongDaiDien", OleDbType.Integer).Value = tempDTO.IDVanPhongDaiDien;
            cmd.ExecuteNonQuery();

            
            cn.Close();
        }
        #endregion




    }
}